/*
 * @Author: WuFeng <763467339@qq.com>
 * @Date: 2022-03-22 12:12:49
 * @LastEditTime: 2022-03-22 12:30:54
 * @LastEditors: WuFeng <763467339@qq.com>
 * @Description: 全局指令
 * @FilePath: \vue3-element-plus-web\src\directive\index.js
 * @Copyright 版权声明
 */

export default {
  install(app) {
    //权限指令
    app.directive('handle-auth', {
      // 指令是具有一组生命周期的钩子：
      // 在绑定元素的 attribute 或事件监听器被应用之前调用
      created(el, binding) {
      },
      // 在绑定元素的父组件挂载之前调用
      beforeMount(el, binding) {
      },
      // 绑定元素的父组件被挂载时调用
      mounted(el, binding) {
        const arg = binding.arg
        const { handleAuth } = binding.value.meta

        if (!handleAuth) {
          el.parentNode.removeChild(el)
          return
        }

        if (!!handleAuth && !(arg && handleAuth[arg])) {
          el.parentNode.removeChild(el)
        }
      },
      // 在包含组件的 VNode 更新之前调用
      beforeUpdate(el, binding) {
      },
      // 在包含组件的 VNode 及其子组件的 VNode 更新之后调用
      updated(el, binding) {
      },
      // 在绑定元素的父组件卸载之前调用
      beforeUnmount(el, binding) {
      },
      // 卸载绑定元素的父组件时调用
      unmounted(el, binding) {
      }
    })
  }
}
